package io.xccit.race.domain;

import io.xccit.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 竞赛成果物对象 race_competition_result
 * 
 * @author ywx
 * @date 2025-10-13
 */
public class RaceCompetitionResult extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 成果物ID */
    private Long id;
    
    /** 竞赛ID */
    private Long competitionId;
    
    /** 报名记录ID */
    private Long signupId;
    
    /** 提交用户ID */
    private Long userId;
    
    /** 提交用户名 */
    private String userName;
    
    /** 成果物名称 */
    private String resultName;
    
    /** 成果物描述 */
    private String resultDescription;
    
    /** 文件路径 */
    private String filePath;
    
    /** 文件大小（字节） */
    private Long fileSize;
    
    /** 文件MD5值 */
    private String fileMd5;
    
    /** 提交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date submitTime;
    
    /** 审核状态（0待审核，1已通过，2已拒绝） */
    private Integer auditStatus;
    
    /** 审核分数（0-100分） */
    private java.math.BigDecimal auditScore;
    
    /** 审核人ID */
    private Long auditorId;
    
    /** 审核人姓名 */
    private String auditorName;
    
    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date auditTime;
    
    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setCompetitionId(Long competitionId) {
        this.competitionId = competitionId;
    }

    public Long getCompetitionId() {
        return competitionId;
    }

    public void setSignupId(Long signupId) {
        this.signupId = signupId;
    }

    public Long getSignupId() {
        return signupId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserName() {
        return userName;
    }

    public void setResultName(String resultName) {
        this.resultName = resultName;
    }

    public String getResultName() {
        return resultName;
    }

    public void setResultDescription(String resultDescription) {
        this.resultDescription = resultDescription;
    }

    public String getResultDescription() {
        return resultDescription;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public String getFilePath() {
        return filePath;
    }

    public void setFileSize(Long fileSize) {
        this.fileSize = fileSize;
    }

    public Long getFileSize() {
        return fileSize;
    }

    public void setFileMd5(String fileMd5) {
        this.fileMd5 = fileMd5;
    }

    public String getFileMd5() {
        return fileMd5;
    }

    public void setSubmitTime(java.util.Date submitTime) {
        this.submitTime = submitTime;
    }

    public java.util.Date getSubmitTime() {
        return submitTime;
    }

    public void setAuditStatus(Integer auditStatus) {
        this.auditStatus = auditStatus;
    }

    public Integer getAuditStatus() {
        return auditStatus;
    }

    public void setAuditScore(java.math.BigDecimal auditScore) {
        this.auditScore = auditScore;
    }

    public java.math.BigDecimal getAuditScore() {
        return auditScore;
    }

    public void setAuditorId(Long auditorId) {
        this.auditorId = auditorId;
    }

    public Long getAuditorId() {
        return auditorId;
    }

    public void setAuditorName(String auditorName) {
        this.auditorName = auditorName;
    }

    public String getAuditorName() {
        return auditorName;
    }

    public void setAuditTime(java.util.Date auditTime) {
        this.auditTime = auditTime;
    }

    public java.util.Date getAuditTime() {
        return auditTime;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return "RaceCompetitionResult{" +
                "id=" + id +
                ", competitionId=" + competitionId +
                ", signupId=" + signupId +
                ", userId=" + userId +
                ", userName='" + userName + '\'' +
                ", resultName='" + resultName + '\'' +
                ", resultDescription='" + resultDescription + '\'' +
                ", filePath='" + filePath + '\'' +
                ", fileSize=" + fileSize +
                ", fileMd5='" + fileMd5 + '\'' +
                ", submitTime=" + submitTime +
                ", auditStatus=" + auditStatus +
                ", auditScore=" + auditScore +
                ", auditorId=" + auditorId +
                ", auditorName='" + auditorName + '\'' +
                ", auditTime=" + auditTime +
                ", delFlag='" + delFlag + '\'' +
                '}';
    }
}
